home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / freeWAIS-sf-1.1 / ctype / ctype.tmpl < prev    next >
Text File  |  1994-09-08  |  2KB  |  100 lines

  1. /*                               -*- Mode: C -*- 
  2.  * ctype.tmpl -- 
  3.  * ITIID           : $ITI$ $Header $__Header$
  4.  * Author          : Ulrich Pfeifer
  5.  * Created On      : Fri Jul 22 14:35:24 1994
  6.  * Last Modified By: Ulrich Pfeifer
  7.  * Last Modified On: Tue Sep  6 17:35:32 1994
  8.  * Update Count    : 2
  9.  * Status          : Unknown, Use with caution!
  10.  */
  11.  
  12. int mystrcmp(s1, s2)        
  13.     unsigned char *s1, *s2;        
  14. {        
  15.   if (!s1) {        
  16.     return(-1);        
  17.   }        
  18.   if (!s2) {        
  19.     return(1);        
  20.   }        
  21.   while(*s1 == *s2) {        
  22.     if (!*s1) { return(0); }        
  23.     s1++; s2++;        
  24.   }        
  25.   return(*s1-*s2);        
  26. }        
  27.  
  28. int mystrcasecmp(s1, s2)        
  29.     unsigned char *s1, *s2;        
  30. {        
  31.   if (!s1) {        
  32.     return(-1);        
  33.   }        
  34.   if (!s2) {        
  35.     return(1);        
  36.   }        
  37.   while(toupper(*s1) == toupper(*s2)) {        
  38.     if (!*s1) { return(0); }        
  39.     s1++; s2++;        
  40.   }        
  41.   return(toupper(*s1)-toupper(*s2));        
  42. }        
  43.  
  44. int mystrncmp(s1, s2, n)        
  45.      unsigned char *s1, *s2;
  46.      long unsigned int n;
  47. {        
  48.   if (!s1) {        
  49.     return(-1);        
  50.   }        
  51.   if (!s2) {        
  52.     return(1);        
  53.   }        
  54.    while((n > 0) && (*s1 == *s2)) {        
  55.      s1++; s2++; n--;
  56.      if(n == 0) {return(0);}
  57.    }        
  58.   return(*s1-*s2);        
  59. }
  60.  
  61. #if 0
  62. int mystrncmp(s1, s2, n)        
  63.      unsigned char *s1, *s2;        
  64.      long unsigned int n;
  65. {      
  66.   int i;
  67.  
  68.   if (!s1) {        
  69.     return(-1);        
  70.   }        
  71.   if (!s2) {        
  72.     return(1);        
  73.   }        
  74.   for (i=0;i<n && (s1[i]==s2[i]);i++)
  75.     if (!s1[i]) { return(0); }        
  76.   }        
  77.   return(s1[i]-s2[i]);        
  78. }        
  79.  
  80.  
  81. int mystrncasecmp(s1, s2, n)        
  82.      unsigned char *s1, *s2;        
  83.      int n;
  84. {      
  85.   int i;
  86.  
  87.   if (!s1) {        
  88.     return(-1);        
  89.   }        
  90.   if (!s2) {        
  91.     return(1);        
  92.   }        
  93.   for (i=0;i<n &&  (tolower(s1[i])==tolower(s2[i]));i++)
  94.     if (!s1[i]) { return(0); }        
  95.   }        
  96.   return(tolower(s1[i])-tolower(s2[i]));        
  97. }   
  98. #endif
  99.  
  100.